/*******************************************************************************
*  file    : transform_change_freq.hpp
*  created : 27.06.2014
*  author  : Slyshyk Oleksiy (alexSlyshyk@gmail.com)
*******************************************************************************/

#ifndef TRANSFORM_CHANGE_FREQ_HPP
#define TRANSFORM_CHANGE_FREQ_HPP

#include <QObject>
#include <interfaces.hpp>
#include <QScopedPointer>
#include <transformparamsprivate.hpp>

class TransformChangeFreq: public QObject, public TransformNamedIntData
{
    Q_OBJECT
    Q_PLUGIN_METADATA(IID "tmx.com.ua.dsp.lab.TransformNamedIntData" FILE "plugin_info.json")
    Q_INTERFACES(TransformNamedIntData)
public:
    TransformChangeFreq(QObject* parent = 0);
    virtual QString    name() const;
    virtual NamedIntData* transform( const NamedIntData* data, const QVariant& params);
    virtual QStringList patternList( ) const;
private:
    void transform(const std::vector<int32_t> &sample, const NamedIntData *data,
                   NamedIntData *res,plugin_utils::TransformParamsPrivate* data_);
};

#endif // TRANSFORM_CHANGE_FREQ_HPP
